package com.example.demo.entity;

import java.io.Serializable;
import java.util.List;
import java.util.Objects;

public class RelatedExecuteInformationEntity implements Serializable {

    private static final long serialVersionUID = Objects.hashCode(RelatedExecuteInformationEntity.class);
    /**
     * 主键，自增
     */
    private Long id;

    /**
     * 执行信息实体的id
     */
    private Long executeInformationId;
    /**
     * 父执行条件的id
     */
    private Long parentRelatedId;
    /**
     * 关联的表名
     */
    private String tableName;
    /**
     * 对应的关联表的字段，值与currentColumn对应
     */
    private String parentColumn;
    /**
     * 当前表的字段，值与parentColumn对应
     */
    private String currentColumn;
    /**
     * 执行类型，删除或者归档
     */
    private String executeType;
    /**
     * 归档时数据的保存方式，保存到同一张表或者保存到新表
     */
    private String archiveType;
    /**
     * 备份表数据处理方式(主表数据发生改变时，备份表需要重新生成)
     * {@link com.example.demo.executor.backupDeal.BackupDealEnum}
     */
    private String backupDealType;
    /**
     * 关联的处理
     */
    private List<RelatedExecuteInformationEntity> relatedExecuteInformation;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getExecuteInformationId() {
        return executeInformationId;
    }

    public void setExecuteInformationId(Long executeInformationId) {
        this.executeInformationId = executeInformationId;
    }

    public Long getParentRelatedId() {
        return parentRelatedId;
    }

    public void setParentRelatedId(Long parentRelatedId) {
        this.parentRelatedId = parentRelatedId;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getParentColumn() {
        return parentColumn;
    }

    public void setParentColumn(String parentColumn) {
        this.parentColumn = parentColumn;
    }

    public String getCurrentColumn() {
        return currentColumn;
    }

    public void setCurrentColumn(String currentColumn) {
        this.currentColumn = currentColumn;
    }

    public String getExecuteType() {
        return executeType;
    }

    public void setExecuteType(String executeType) {
        this.executeType = executeType;
    }

    public String getArchiveType() {
        return archiveType;
    }

    public void setArchiveType(String archiveType) {
        this.archiveType = archiveType;
    }

    public List<RelatedExecuteInformationEntity> getRelatedExecuteInformation() {
        return relatedExecuteInformation;
    }

    public void setRelatedExecuteInformation(List<RelatedExecuteInformationEntity> relatedExecuteInformation) {
        this.relatedExecuteInformation = relatedExecuteInformation;
    }

    public String getBackupDealType() {
        return backupDealType;
    }

    public void setBackupDealType(String backupDealType) {
        this.backupDealType = backupDealType;
    }
}
